// 全局异常捕获中间件
const catchError = async (ctx, next) => {
    try {
        await next()
    }
    catch (error) {
        let msg = error.toString().replaceAll('Error:', '')

        if(error.cause) {
            msg = error.cause
        }
        try {
            let msg = error.toString()
            if(error.cause) {
                msg = error.cause
            }
            // if(error.cause && error.cause.errors && error.cause.errors.length >0) {
            //     msg = error.cause.errors[0].getError()
            // }
            // let tid = ctx.user ? (ctx.user.tenantId ? ctx.user.tenantId:0):0
            // let uid = ctx.user ? (ctx.user.id ? ctx.user.id:0):0
            // await db.models['logExKoa'].create({
            //     api: ctx.request.url,
            //     tenantId: tid,
            //     uid: uid,
            //     msg: msg,
            //     ct: tool.getTime()
            // })
            return ctx.err(msg)
        }
        catch (err) {
            // await db.models['logExKoa'].create({
            //     api: '异常中间件',
            //     tenantId: null,
            //     uid: null,
            //     msg: error.toString(),
            //     ct: tool.getTime()
            // })
            return ctx.err(error)
        }
    }
}

module.exports = catchError